let secret_code = ''
// 获取应用实例
const app = getApp()

Page({
  data: {
    countDownVisible: false,
    mobile: '',
    code: '',
    tiemData: {}
  },

  onLoad({redirectURL}) {
    // 获取地址参数
    this.setData({
      redirectURL
    })
  },


  verifyMobile() {
    const ref = /^[1][3-9][0-9]{9}$/
    const valid = ref.test(this.data.mobile.trim())
    if (!valid) wx.utils.toast('请填写正确的手机号码!')
    return valid
  },

   // 验证验证码
  verifyCode() {
    // 验证码为6位数字
    const ref = /^[0-9]{6}$/
    // 验证验证码
    const valid = ref.test(this.data.code.trim())
    // 验证结果提示
    if(!valid) wx.utils.toast('请检查验证码是否正确!')
    // 返回验证结果
    return valid
  },

    // 获取短信验证码
  async getCode() {
    if (!this.verifyMobile()) return 
    const {code , data} = await wx.http.get('/code',{mobile: this.data.mobile.trim()})
    if (code !== 10000) {return wx.uitls.toast('发送失败, 请稍后重试!')}
    wx.utils.toast('发送成功, 请查收短信!')
    this.setData({ countDownVisible: true })
    secret_code = data.code
    this.copyCode()
  },

  // 提交数据完成登录
  async submitForm() {
    // 逐个验证表单数据
    if (!this.verifyMobile()) return 
    if (!this.verifyCode()) return 

    // 用户填写的手机号和验证码
    const { mobile, code } = this.data
    // 调用接口登录/注册
    const res = await wx.http.post('/login',{ mobile, code })
    // 校验数据是否合法
    if (res.code !== 10000) return wx.utils.toast('请检查验证码是否正确!')

    app.setToken(res.data.token, res.data.refreshToken)
    // // 拼凑完整 token 
    // const token = `Bearer ${res.data.token}`
    // // 本地存储 token 和 refresh_token
    // wx.setStorageSync('token', token)
    // // 更新全局 token 和 refresh_token
    // app.token = token

    // 重定向至登录前的页面
    wx.redirectTo({
      url: this.data.redirectURL
    })
  },

  copyCode() {
    wx.setClipboardData({
      data: secret_code
    })
  },

  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },
})
